package com.yic.module.mes.controller.admin.plan.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;

import com.alibaba.excel.annotation.ExcelProperty;
import com.yic.framework.excel.core.annotations.DictFormat;
import com.yic.framework.excel.core.convert.DictConvert;


/**
 * 生产计划 Excel VO
 *
 * @author 系统管理员
 */
@Data
public class PlanExcelVO {

    @ExcelProperty("主键")
    private Long id;

    @ExcelProperty("计划单号")
    private String code;

    @ExcelProperty(value = "工单类型", converter = DictConvert.class)
    @DictFormat("mes_plan_type") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Integer type;

    @ExcelProperty("产品通用信息ID")
    private Long itemId;

    @ExcelProperty("产品生产信息ID")
    private Long itemProduceId;

    @ExcelProperty("工厂")
    private Long factoryId;

    @ExcelProperty(value = "是否紧急", converter = DictConvert.class)
    @DictFormat("system_integer_status") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Integer emergent;

    @ExcelProperty("批次号")
    private String batchNo;

    @ExcelProperty("备注")
    private String remark;

    @ExcelProperty("预计产量")
    private BigDecimal planAmount;

    @ExcelProperty("排产数量")
    private BigDecimal produceAmount;

    @ExcelProperty("计划开始时间")
    private LocalDateTime planStartTime;

    @ExcelProperty("计划完成时间")
    private LocalDateTime planCompleteTime;

    @ExcelProperty("计划状态")
    private Integer status;

    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}
